#pragma once
/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Foundation Framework Class Library
 * Version 2.00
 * 
 * DNS Query Type Enumeration
 *      Lists the types of DNS queries that may be performed.
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
#include "stdafx.h"
using namespace System;
using namespace System::Net;

namespace Adaptive
{
	namespace Network
	{
		namespace Dns
		{
			/// <summary>
			/// Lists the types of DNS queries that may be performed.
			/// </summary>
			public enum class DnsQueryType : short
			{
				/// <summary>
				/// Indicates a DNS query of type "zero".
				/// </summary>
				Zero			=	DNS_TYPE_ZERO,
				/// <summary>
				/// Indicates a DNS query for an address.
				/// </summary>
				Address			=	DNS_TYPE_A,
				/// <summary>
				/// Indicates a DNS query for an address.
				/// </summary>
				IPv6Address			=	DNS_TYPE_AAAA,
				/// <summary>
				/// Indicates a DNS query for a name server.
				/// </summary>
				NameServer		=	DNS_TYPE_NS,
				/// <summary>
				/// Indicates a DNS query for a mail destination.
				/// </summary>
				MailDestination	=	DNS_TYPE_MD,
				/// <summary>
				/// Indicates a DNS query for mail forwarding information.
				/// </summary>
				MailForwarder	=	DNS_TYPE_MF,
				/// <summary>
				/// Indicates a DNS query for a canonical name.
				/// </summary>
				CanonicalName	=	DNS_TYPE_CNAME,
				/// <summary>
				/// Indicates a DNS query for a start of authority record.
				/// </summary>
				StartOfAuthority=	DNS_TYPE_SOA,
				/// <summary>
				/// Indicates a DNS query for mailbox information.
				/// </summary>
				MailBoxCode		=	DNS_TYPE_MB,
				/// <summary>
				/// Indicates a DNS query for mail group member information.
				/// </summary>
				MailGroupMember	=	DNS_TYPE_MG,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				MailRename		=	DNS_TYPE_MR,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				NullRecord		=	DNS_TYPE_NULL,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				WellKnownService=	DNS_TYPE_WKS,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				DomainPointer	=	DNS_TYPE_PTR,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				HostInfo		=	DNS_TYPE_HINFO,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				MailboxInfo		=	DNS_TYPE_MINFO,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				MailExchange	=	DNS_TYPE_MX,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				TextRecord		=	DNS_TYPE_TEXT,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				ResponsiblePerson					=	DNS_TYPE_RP,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				AFSDatabase							=	DNS_TYPE_AFSDB,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				X25									=	DNS_TYPE_X25,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				ISDNAddress							=	DNS_TYPE_ISDN,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				RouteThrough						=	DNS_TYPE_RT,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				NetworkServiceAccessPoint			=	DNS_TYPE_NSAP,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				NetworkServiceAccessPointPointer	=	DNS_TYPE_NSAPPTR,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				PublicKeySignature					=	DNS_TYPE_SIG,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				PublicKey							=	DNS_TYPE_KEY,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				GeographicPosition					=	DNS_TYPE_GPOS,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				LocationInformation					=	DNS_TYPE_LOC,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				NextDomain							=	DNS_TYPE_NXT,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				EndpointIdentifier					=	DNS_TYPE_EID,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				MinrodLocator						=	DNS_TYPE_NIMLOC,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				ServiceRecord						=	DNS_TYPE_SRV,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				ATMAddress							=	DNS_TYPE_ATMA,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				NamingAuthorityPointer				=	DNS_TYPE_NAPTR,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				KeyExchanger						=	DNS_TYPE_KX,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				Certificate							=	DNS_TYPE_CERT,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				DomainNameAliases					=	DNS_TYPE_DNAME,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				KitchenSink							=	DNS_TYPE_SINK,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				UInfo								=	DNS_TYPE_UINFO,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				UID									=	DNS_TYPE_UID,
				/// <summary>
				/// Indicates a DNS query
				/// </summary>
				GID									=	DNS_TYPE_GID,
				/// <summary>
				/// Indicates a DNS query for an unspecified result.
				/// </summary>
				Unspecified							=	DNS_TYPE_UNSPEC,
				/// <summary>
				/// Indicates a DNS query for all records.
				/// </summary>
				All									=   DNS_TYPE_ALL
			};
		}
	}
}